package com.ruoyi.water.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;

/**
 * 水系统元素实体类，对应t_element表
 * 包含水管、水表、阀门等各类供水系统元素信息
 */
@Data
@TableName("t_element")
public class Element {

    /**
     * 主键ID，自增
     */
    @Excel(name = "主键ID")
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 父级ID，默认-1
     */
    @Excel(name = "父级ID")
    @TableField("parentId")
    private Integer parentId;

    /**
     * 所属责任区ID
     */
    @Excel(name = "责任区ID")
    @TableField("zoneName")
    private String zoneId;

    /**
     * 1级区域ID，默认-1
     */
    @Excel(name = "一级区域")
    @TableField("firstAreaId")
    private Integer firstAreaId;

    /**
     * 是否监测设备：1-是（如水表、流量计），0-否
     */
    @Excel(name = "是否监测设备")
    @TableField("ismonitor")
    private Boolean ismonitor;

    /**
     * 元素名称
     */
    @Excel(name = "元素名称")
    @TableField("elemName")
    private String elemName;

    /**
     * 元素地理信息
     */
    @Excel(name = "地理信息")
    @TableField("elemGeo")
    private String elemGeo;

    /**
     * 位置等信息描述
     */
    @Excel(name = "位置描述")
    @TableField("elemLocation")
    private String elemLocation;

    /**
     * 设备可用状态：1-可用，0-失效
     */
    @Excel(name = "水表状态")
    @TableField("elemStatus")
    private Boolean elemStatus;

    /**
     * 远程水表序列号
     */
    @Excel(name = "水表序列号")
    @TableField("serialNum")
    private String serialNum;

    /**
     * 只用于设置水表层级
     */
    @Excel(name = "水表层级")
    @TableField("elemLevel")
    private Integer elemLevel;

    /**
     * 是否入口总水表：1-是，0-否（一个分区可以有多个入口水表）
     */
    @Excel(name = "是否入口总水表")
    @TableField("entryMeter")
    private Boolean entryMeter;

    /**
     * 更换日期
     */
    @Excel(name = "更换日期")
    @TableField("replaceDate")
    private Date replaceDate;

    /**
     * 水表的最小流量/小时，用于判断漏损
     */
    @Excel(name = "最小流量")
    @TableField("minVal")
    private Double minVal;

    /**
     * 水表最大流量阈值
     */
    @Excel(name = "最大流量阈值")
    @TableField("maxVal")
    private Double maxVal;

    /**
     * 水表系数
     */
    @Excel(name = "水表系数")
    @TableField("meterCoeff")
    private Double meterCoeff;

    /**
     * 水表的每天基准用量——用于累计报警
     */
    @Excel(name = "每日流量")
    @TableField("dayUsage")
    private Double dayUsage;

    /**
     * 最小流量超过告警流量 第1级告警的百分比
     */
    @Excel(name = "一级告警")
    @TableField("firstWarn")
    private Double firstWarn;

    /**
     * 最小流量超过告警流量 第2级告警的百分比
     */
    @Excel(name = "二级告警")
    @TableField("secondWarn")
    private Double secondWarn;

    /**
     * 最小流量超过告警流量 第3级告警的百分比
     */
    @Excel(name = "三级告警")
    @TableField("thirdWarn")
    private Double thirdWarn;

    /**
     * 排序ID，方便调整、设置水表在表中显示的次序
     */
    @Excel(name = "显示次序")
    @TableField("sortIdx")
    private Integer sortIdx;

    /**
     * 备注信息
     */
    @Excel(name = "备注")
    @TableField("remark")
    private String remark;

    /**
     * 记录时间，由数据库自动更新
     */
    @Excel(name = "记录时间")
    @TableField("recordTime")
    private Date recordTime;

    /**
     * 表记厂家
     */
    @Excel(name = "表记厂家")
    @TableField("表记厂家")
    private String factory;

    /**
     * 用水分项
     */
    @Excel(name = "用水分项")
    @TableField("用水分项")
    private String waterType;

    /**
     * 所辖楼栋
     */
    @Excel(name = "所辖楼栋")
    @TableField("所辖楼栋")
    private String childBuilding;

    /**
     * negativeAreaId字段
     */
    @Excel(name = "负向区域ID")
    @TableField("negativeAreaId")
    private Integer negativeAreaId;
}